home *** CD-ROM | disk | FTP | other *** search
/ Dr. Windows 3 / dr win3.zip / dr win3 / UTILITY1 / IPXSPX.ZIP / SOURCE / NETCHAT / NETCHAT.TXT < prev    next >
Text File  |  1993-12-20  |  14KB  |  525 lines

  1. Option Explicit
  2. Option Base 1
  3.  
  4. Sub About_Click ()
  5.     aboutForm.Show 1
  6. End Sub
  7.  
  8. Sub BinderyObjList_DblCLick ()
  9.     Dim Address As String
  10.     Dim formatString As String
  11.     Dim nwTime As String
  12.     Dim YY, MM, DD, HR, MI, SC, DA As Integer
  13.     Dim nwLoginTime  As Variant
  14.     Dim nwUser As USER_INFO
  15.     Dim ccode, index As Integer
  16.  
  17.     nwUser = netWareUsers(BinderyObjList.ListIndex + 1)
  18.     userName = Mid$(BinderyObjList.Text, 1, 20)
  19.     userConn = nwUser.connNumber
  20.     nwTime = nwUser.loginTime
  21.     YY = Asc(Mid(nwTime, 1, 1)) + 1900
  22.     MM = Asc(Mid(nwTime, 2, 1))
  23.     DD = Asc(Mid(nwTime, 3, 1))
  24.     HR = Asc(Mid(nwTime, 4, 1))
  25.     MI = Asc(Mid(nwTime, 5, 1))
  26.     SC = Asc(Mid(nwTime, 6, 1))
  27.     
  28.     'pretty print the login time
  29.     nwLoginTime = DateSerial(YY, MM, DD)
  30.     formatString = Format$(nwLoginTime, "mm-dd-yyyy")
  31.     userLoginTime = formatString
  32.  
  33.     'pretty print the login date
  34.     formatString = TimeSerial(HR, MI, SC)
  35.     userLoginDay = formatString
  36.     
  37.     'pretty print the internet address
  38.     ccode = NWGetInternetAddress(nwConn, userConn, yourInetAddress)
  39.     If ccode Then
  40.     MsgBox "Error getting internet addresss"
  41.     End If
  42.  
  43.     formatString = yourInetAddress.network & yourInetAddress.node
  44.     FormatInternetAddress formatString
  45.     
  46.     userAddress = formatString
  47.     userPicture.Visible = True
  48.  
  49.     ipx1.RemoteName = yourInetAddress.network & yourInetAddress.node & Chr$(&H54) & Chr$(&H54)
  50.     connectButton.SetFocus
  51.  
  52. End Sub
  53.  
  54. Sub BinderyObjList_KeyPress (KeyAscii As Integer)
  55.     If KeyAscii = 13 Then
  56.     BinderyObjList_DblCLick
  57.     End If
  58. End Sub
  59.  
  60. Sub cancelButton_Click ()
  61.     
  62.     userPicture.Visible = False
  63.     sendBox.Visible = False
  64.     receiveBox.Visible = False
  65.  
  66.     connectButton.Enabled = True
  67.     disconnectButton.Enabled = False
  68.  
  69. End Sub
  70.  
  71. Sub connectButton_Click ()
  72.     Dim formatString As String
  73.     Dim NetData As String
  74.  
  75.     If Mid$(ipx1.LocalName, 1, 10) = Mid$(ipx1.RemoteName, 1, 10) Then
  76.     MsgBox "Unable to chat to yourself"
  77.     Exit Sub
  78.     End If
  79.  
  80.     'Send the connect request and my connection number
  81.     NetData = Chr$(IPXSPX_CONNECT) & Chr$(nwConnNumber / 256) & Chr$(nwConnNumber And &HFF)
  82.     
  83.     netChatState = IPXSPX_SENDCONN
  84.     ipx1.Send = NetData
  85.     
  86.     formatString = yourInetAddress.network & yourInetAddress.node
  87.     FormatInternetAddress formatString
  88.     netChatConnection!connectionLabel = "Attempting to chat with " & formatString
  89.     netChatConnection!connectionOK.Caption = "&Cancel"
  90.  
  91.     netChatConnection.Show 1
  92.     Select Case netChatState
  93.     Case IPXSPX_CONNECT
  94.         sendBox.Visible = True
  95.         receiveBox.Visible = True
  96.         connectButton.Enabled = False
  97.         disconnectButton.Enabled = True
  98.         cancelButton.Enabled = False
  99.         receiveBox.Text = ""
  100.         sendBox.Text = ""
  101.     Case IPXSPX_SENDCONN
  102.         NetData = Chr$(IPXSPX_DISCONNECT)
  103.         ipx1.Send = NetData
  104.         netChatState = IPXSPX_DISCONNECT
  105.     End Select
  106.     
  107. End Sub
  108.  
  109. Sub ConnectionRequest (inetAddress)
  110.     Dim formatString As String
  111.  
  112.     formatString = inetAddress
  113.     FormatInternetAddress formatString
  114.     netChatConnection!connectionLabel = formatString & " calling, will you accept the charges?"
  115.  
  116. End Sub
  117.  
  118. Sub ConnectState (netChatPtr As NetChatInput)
  119.     Dim connNumber As Integer
  120.     Dim Address As String
  121.     Dim formatString As String
  122.     Dim nwTime As String
  123.     Dim YY, MM, DD, HR, MI, SC, DA As Integer
  124.     Dim nwLoginTime  As Variant
  125.     Dim nwUser As USER_INFO
  126.     Dim ccode, index As Integer
  127.  
  128.     Select Case netChatState
  129.     Case IPXSPX_SENDCONN
  130.         If ipx1.ReceivedFrom = ipx1.RemoteName Then
  131.         netChatState = IPXSPX_CONNECT
  132.         Unload netChatConnection
  133.         End If
  134.  
  135.     Case IPXSPX_DISCONNECT
  136.         netChatState = IPXSPX_RECEIVECONN
  137.         ConnectionRequest Mid$(ipx1.ReceivedFrom, 1, 10)
  138.         netChatConnection.Show 1
  139.         If netChatState = IPXSPX_RECEIVECONN Then
  140.         ipx1.RemoteName = ipx1.ReceivedFrom
  141.         connNumber = Asc(Mid$(netChatPtr.data, 2, 1)) * 256 + Asc(Mid$(netChatPtr.data, 3, 1))
  142.         
  143.         ipx1.Send = Chr$(IPXSPX_CONNECT) & Chr$(54) & Chr$(54) & Chr$(nwConnNumber / 256) & Chr$(nwConnNumber And &HFF)
  144.  
  145.         ccode = NWGetConnectionInformation(nwConn, connNumber, ByVal nwUser.objectName, nwUser.objectType, nwUser.objectID, ByVal nwUser.loginTime)
  146.         If ccode Then
  147.             MsgBox "Unable to get connection information"
  148.             Exit Sub
  149.         End If
  150.  
  151.         nwTime = nwUser.loginTime
  152.         YY = Asc(Mid(nwTime, 1, 1)) + 1900
  153.         MM = Asc(Mid(nwTime, 2, 1))
  154.         DD = Asc(Mid(nwTime, 3, 1))
  155.         HR = Asc(Mid(nwTime, 4, 1))
  156.         MI = Asc(Mid(nwTime, 5, 1))
  157.         SC = Asc(Mid(nwTime, 6, 1))
  158.     
  159.         'pretty print the login time
  160.         nwLoginTime = DateSerial(YY, MM, DD)
  161.         formatString = Format$(nwLoginTime, "mm-dd-yyyy")
  162.         userLoginTime = formatString
  163.  
  164.         'pretty print the login date
  165.         formatString = TimeSerial(HR, MI, SC)
  166.         userLoginDay = formatString
  167.     
  168.         'pretty print the internet address
  169.         formatString = ipx1.RemoteName
  170.         FormatInternetAddress formatString
  171.     
  172.         userAddress = formatString
  173.         userPicture.Visible = True
  174.  
  175.         sendBox.Visible = True
  176.         receiveBox.Visible = True
  177.         connectButton.Enabled = False
  178.         disconnectButton.Enabled = True
  179.         cancelButton.Enabled = False
  180.         netChatState = IPXSPX_CONNECT
  181.         receiveBox.Text = ""
  182.         sendBox.Text = ""
  183.         netChatForm.WindowState = 0
  184.         sendBox.SetFocus
  185.         End If
  186.     End Select
  187.  
  188. End Sub
  189.  
  190. Sub ConvertInputToData (NetData, netChatPtr As NetChatInput)
  191.     
  192.     netChatPtr.header.destination.network = Mid$(ipx1.LocalName, 1, 4)
  193.     netChatPtr.header.destination.node = Mid$(ipx1.LocalName, 5, 6)
  194.     netChatPtr.header.destination.socket = Mid$(ipx1.LocalName, 11, 2)
  195.     netChatPtr.header.source.network = Mid$(NetData, 1, 4)
  196.     netChatPtr.header.source.node = Mid$(NetData, 5, 6)
  197.     netChatPtr.header.source.socket = Mid$(NetData, 11, 2)
  198.     netChatPtr.data = Mid$(NetData, 13)
  199.  
  200. End Sub
  201.  
  202. Sub DataState (netChatPtr As NetChatInput)
  203.     Dim netVal As String
  204.     
  205.     Select Case netChatState
  206.     Case IPXSPX_CONNECT
  207.         netVal = Mid$(netChatPtr.data, 2)
  208.         Select Case Asc(netVal)
  209.         Case 13 'return
  210.             receiveBox = receiveBox & Chr$(13) & Chr$(10)
  211.         Case 8 'Backspace
  212.         If Len(receiveBox) > 0 Then
  213.             If Asc(Right$(receiveBox, 1)) = 10 Then
  214.             receiveBox = Left$(receiveBox, Len(receiveBox) - 2)
  215.             Else
  216.             receiveBox = Left$(receiveBox, Len(receiveBox) - 1)
  217.             End If
  218.         End If
  219.         Case Else   ' Must be something else.
  220.             receiveBox = receiveBox & netVal
  221.         
  222.     End Select
  223.  
  224.     End Select
  225. End Sub
  226.  
  227. Sub disconnectButton_Click ()
  228.     
  229.     Dim NetData As String
  230.     
  231.     NetData = Chr$(IPXSPX_DISCONNECT)
  232.     ipx1.Send = NetData
  233.  
  234.     userPicture.Visible = False
  235.     sendBox.Visible = False
  236.     receiveBox.Visible = False
  237.  
  238.     connectButton.Enabled = True
  239.     disconnectButton.Enabled = False
  240.     cancelButton.Enabled = True
  241.     netChatState = IPXSPX_DISCONNECT
  242. End Sub
  243.  
  244. Sub DisconnectionRequest (inetAddress)
  245.     Dim formatString As String
  246.     
  247.     formatString = inetAddress
  248.     FormatInternetAddress formatString
  249.     netChatDisConnection!disconnectionLabel = formatString & " has disconnected"
  250.  
  251. End Sub
  252.  
  253. Sub DisConnectState (netChatPtr As NetChatInput)
  254.     
  255.     Select Case netChatState
  256.     Case IPXSPX_RECEIVECONN
  257.         netChatState = IPXSPX_DISCONNECT
  258.         Unload netChatConnection
  259.  
  260.     Case IPXSPX_SENDCONN
  261.         netChatState = IPXSPX_DISCONNECT
  262.  
  263.     Case IPXSPX_DISCONNECT
  264.         Unload netChatConnection
  265.  
  266.     Case IPXSPX_CONNECT
  267.         If ipx1.ReceivedFrom = ipx1.RemoteName Then
  268.         DisconnectionRequest Mid$(ipx1.ReceivedFrom, 1, 10)
  269.         netChatState = IPXSPX_RECEIVECONNMODAL
  270.         netChatDisConnection.Show 1
  271.         userPicture.Visible = False
  272.         sendBox.Visible = False
  273.         receiveBox.Visible = False
  274.         connectButton.Enabled = True
  275.         disconnectButton.Enabled = False
  276.         cancelButton.Enabled = True
  277.         netChatState = IPXSPX_DISCONNECT
  278.         End If
  279.     End Select
  280.  
  281. End Sub
  282.  
  283. Sub exitButton_Click ()
  284.     Dim NetData As String
  285.     
  286.     'if still connected, send a disconnect
  287.     If netChatState = IPXSPX_CONNECT Then
  288.     NetData = Chr$(IPXSPX_DISCONNECT)
  289.     ipx1.S